// 核心代码
function core(...args) {
    console.log('core', args);
}

// 给core增加额外逻辑，但是不改变原有核心代码
Function.prototype.before = function(cb) {
    // this => core
    return (...args) => {
        cb();
        this(...args);
    }
}

let newCore = core.before(() => {
    console.log('before');
})

newCore('a', 'b');



